1. Field of the Invention
The present invention generally relates to Internet Protocol (IP) addresses. More particularly, the present invention relates to the task of assigning IP addresses to customers of an Internet Data Center (IDC).
2. Related Art
The Internet is a collection of networks whose users communicate with each other. Each communication carries the address of the source and the destination networks and the particular machine within the network associated with the user or the host computer at each end. This address is called the Internet Protocol (IP) address. The IP address is 32 bits long. Moreover, the IP address has two parts: the network part identifies the network number and the host part identifies the specific machine or host (e.g. computer machine, networking machine, storage machine, etc.) within the network.
A subnet is an identifiably separate part of an organization's network. Typically, a subnet may represent all the machines at one geographic location, in one building, on the same local area network (LAN), etc. Having an organization's network divided into subnets allows it to be connected to the Internet with a single network number address. Without subnets, an organization could get multiple connections to the Internet, one for each of its physically separate subnets, but this would require an unnecessary use of the limited number of network numbers the Internet has to assign. It would also require that Internet routing tables on gateways outside the organization would need to know about and have to manage routing that could be handled within an organization.
A portion of the bits of the host part of the IP address can be used to identify a specific subnet. Effectively, the IP address then contains three parts: the network number, the subnet number, and the machine or host number. The 32-bit IP address is often depicted as a dot address—that is, four groups of decimal digits separated by periods. The notation 130.5.5.25 is an example of an IP address. The decimal numbers 130, 5, 5, and 25 each represent a separate binary number. The above IP address is the string of 0s and 1s: 10000010.00000101.00000101.00011001 (binary).
Typically, an Internet Data Center (IDC) has a dynamic infrastructure of machines (e.g. computer machine, networking machine, storage machine, etc.) which fulfill the various needs of a diverse range of customers. IP addresses from the IDC's network address space are assigned to the machines associated with each customer. In general, a fixed number of IP addresses are assigned for each customer's machine needs. Customers have unknown growth patterns and may experience rapid growth over time. Further, Web promotions or other such sporadic events may cause a temporary surge in the customer equipment or machine needs. Thus, equipment or machine needs presented by the customer in the initial contract with the IDC can only be taken as a coarse guideline. Further, in this high churn environment, existing customers may leave and new customers may arrive fairly often, thus presenting various IP addressing requirements challenges to the IDC.
Moreover, the IDC may be partitioned into multiple service cores or core subnets. As an example, each core subnet may have a capacity of 20-1200 machines. Customers of various sizes may reside in an IDC service core or core subnet, ranging from very small customers (requiring approximately 10 or fewer machines) to very large customers (requiring a few hundred machines). Customers requiring thousands of machines can occupy multiple IDC service cores or core subnets. On occasion, a custom solution may need to be built for them. Some machines require multiple IP addresses. Based on their capabilities and application needs, some machines may need 3-4 IP addresses. Few machines need more than that.
The conventional IP address assignment scheme for an IDC has several deficiencies. First, the conventional IP address assignment scheme relies on ad hoc partitioning of IP addresses for distribution to customers, preventing automation of the IP address assignment scheme. Secondly, the conventional IP address assignment scheme sometimes provides insufficient IP addresses for the customer's future expansion needs, requiring the costly and time consuming task of renumbering (or changing) the IP addresses assigned to the customer's machines to keep up with the customer's growth. Lastly, the conventional IP address assignment scheme sometimes provides an oversupply of IP addresses to the customer, leading to inefficient utilization of the IDC's network address space.